golang iota枚举的例子
Go语言中没有枚举这个关键字,这会让人很不解,突然想用到的时候,会觉得很不适应。我不用不代表不要有,这可能是Go语言开发的取舍问题,追求精简,去掉不值得的地方。
缘起
在开源项目BaiduPCS-Go
中,有这样的一个操作。
1 | const ( |
从代码里头都可以猜到,iota
这肯定是递增的,看定义,其初始值为0
。
1 | const iota int = 0 |
具体对于iota
的理解,可以参考:4 iota enum examples。
Iota基本的例子
iota
关键字代表连续整数的常数0,1,2,…- 只要
const
出现在源代码中,它就会重置为0 , - 并在每个
const
之后递增。
1 | const ( |
这可以简化为
1 | const ( |
在这里,我们依赖于在带括号的const
声明中隐式重复表达式的事实——表示前面的表达式及其类型的重复。
从一开始
要以1而不是0开始常量列表,可以iota
在算术表达式中使用。
1 | const ( |
跳过定义
您可以使用空白标识符跳过常量列表中的值。
1 | const ( |
带字符串的完整枚举类型[最佳实践]
这是实现枚举类型的惯用方法:
- 创建一个新的整数类型,
- 列出其值,使用
iota
, - 给类型一个
String
函数。
1 | type Direction int |
Ex…
1 | var d Direction = North |
本文标题:golang iota枚举的例子
文章作者:小师
发布时间:2019-04-10
最后更新:2022-05-04
原始链接:chunlife.top/2019/04/10/golang iota枚举的例子/
版权声明:本站所有文章均采用知识共享署名4.0国际许可协议进行许可